package com.yuedou.api.entity.mall;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;

/**
 * 用户的订单对象 mall_second_kill_order
 *
 * @author ruoyi
 * @date 2022-11-07
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("mall_second_kill_order")
public class MallSecondKillOrder implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * $column.columnComment
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Long id;

    /**
     * $column.columnComment
     */
    private String orderNo;

    /**
     * 订单的类型  0 - 普通商品订单  1 - 团购商品订单  2 - 秒杀商品订单
     */
    private Integer orderType;

    /**
     * 购买者的 id
     */
    private Integer userId;

    /**
     * 商品总额
     */
    private BigDecimal price;

    /**
     * 订单创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 订单状态 0 - 未支付  1 - 支付中  2 - 已支付 3 - 待发货  4 - 待收货  5 - 待评价 6 - 已评价  7 - 订单取消  8 - 退货中 9 - 已退货
     */
    private Integer state;

    /**
     * 微信支付的订单号
     */
    private String outTradeNo;

    /**
     * 备注留言
     */
    private String remark;

    /**
     * 支付时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date payTime;

    /**
     * 运费模版id
     */
    private Integer carriageId;

    /**
     * 邮费
     */
    private BigDecimal carriageMoney;

    /**
     * 实付款
     */
    private BigDecimal payMoney;

    /**
     * 支付方式     1 - 微信  2 -   支付宝
     */
    private Integer payType;

    /**
     * 用户的地址id
     */
    private Integer userAddressId;

    /**
     * $column.columnComment
     */
    private String outRefundNo;

    /**
     * 退款金额
     */
    private BigDecimal refundFee;

    /**
     * 退款状态  0 - 未退款  1 - 发起退款 2 - 退款处理中 3 - 完成退款  4- 退款失败
     */
    private Integer refundState;

    /**
     * $column.columnComment
     */
    private String refundFailReason;

    /**
     * 退款时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date refundTime;

    /**
     * 退款/退货原因
     */
    private String refundReason;

    /**
     * 发票类型 0 - 个人 1 - 企业单位
     */
    private Integer invoiceType;

    /**
     * 收票人的电子邮箱地址  选填
     */
    private String invoiceReceiverEmail;

    /**
     * 开具发票的类型为企业的时候  纳税人识别号
     */
    private String invoicePayTaxes;

    /**
     * 发票抬头
     */
    private String invoiceUsername;

    /**
     * 快递公司名称
     */
    private String expressNameCode;

    /**
     * 快递单号
     */
    private String expressNo;

    /**
     * 发货时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date expressTime;

}
